package utils

import (
	"context"
	"fmt"
	"gitee.com/chunanyong/zorm"
	"github.com/robfig/cron"
	"sync"
)

// CronUtils 定时任务接取his 数据
type CronUtils struct {
	Cron      *cron.Cron
	LastTime  string          `json:"lastTime"` //最后一次个结束时间
	oracleCtx context.Context `json:"oracleCtx"`
	oracleDb  *zorm.DBDao     `json:"oracleDb"`
}

var cronInstance *CronUtils
var cronOnce sync.Once

func GetCronUtils() *CronUtils {
	cronOnce.Do(func() {
		cronInstance = &CronUtils{
			Cron:     cron.New(),
			LastTime: "2023-05-19 10:00:00",
		}
	})
	return cronInstance
}

func (c *CronUtils) StartCron() {
	completeSpec := fmt.Sprintf("*/%v * * * * ?", 5)
	c.AddFunc(completeSpec, c.updateDepts)
	c.Cron.Start()
	defer c.Cron.Stop()
	select {}
}
func (c *CronUtils) AddFunc(spec string, job cron.FuncJob) {
	err := c.Cron.AddFunc(spec, job)
	if err != nil {
		fmt.Printf("AddFunc error : %v", err)
		return
	}
}
func (c *CronUtils) updateDepts() {

}
